]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
Error out at startup if the GConf schemas are missing
authorDan Winship <danw@gnome.org>
Tue, 2 Mar 2010 18:51:00 +0000 (13:51 -0500)
committerDan Winship <danw@gnome.org>
Fri, 12 Mar 2010 18:48:58 +0000 (13:48 -0500)
If we don't do this, then boolean/int/list keys will seem to sort of
work (but defaulting to false/0/[] instead of the correct schema
defaults), but string keys will return null, which will usually cause
exceptions or crashes.

https://bugzilla.gnome.org/show_bug.cgi?id=611214

src/shell-gconf.c

index 7073bbdcf45a46970fbff2977d00e44919c7f847..30485d4ad90f707bbe83c0e3a6aba19992c1226b 100644 (file)
@@ -46,9 +46,21 @@ static void gconf_value_changed (GConfClient *client, const char *key,
 static void
 shell_gconf_init (ShellGConf *gconf)
 {
+  GConfValue *val;
+
   gconf->client = gconf_client_get_default ();
   gconf_client_add_dir (gconf->client, SHELL_GCONF_DIR,
                         GCONF_CLIENT_PRELOAD_RECURSIVE, NULL);
+
+  val = gconf_client_get (gconf->client,
+                          SHELL_GCONF_DIR "/development_tools", NULL);
+  if (!val)
+    {
+      g_error ("GNOME Shell GConf schemas not found.\n"
+               "This generally indicates a building or packaging problem.");
+    }
+  gconf_value_free (val);
+
   g_signal_connect (gconf->client, "value_changed",
                     G_CALLBACK (gconf_value_changed), gconf);
 }